
a, b, c, d = map(eval, input().split())


def f(x):
    return a * x ** 3 + b * x ** 2 + c * x + d


o = -100
l1 = []
l2 = []
l3 = []

while len(l1) + len(l2) < 3:
    if f(o) == 0:
        l1.append(o)
    if f(o) * f(o + 1) < 0:
        l2.append(o)
    o += 1


def jingque(y):
    d = 0.5
    while 1:
        if f(y) == 0:
            return y
        if f(y) * f(y + d) < 0:
            d = d/2
        else:
            y = y + d/2
        if d < 0.005:
            return y


l3 = [jingque(l2[i])for i in range(len(l2))]
l4 = l1 + l3
print('%.2f %.2f %.2f'%(l4[0], l4[1], l4[2]))
